﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Windows.Input;
using CLEX.AdminUI.View;

namespace CLEX.AdminUI.ViewModel
{
    internal sealed class MainVM : ViewModelBase
    {
        private readonly Facade facade;
        private readonly UserListVM users;
        private readonly DatabaseListVM databases;
        private readonly FriendRequestListVM friendRequests;
        private readonly FriendshipListVM friendships;
        private readonly SharedDatabaseListVM sharedDatabases;

        public UserListVM Users
        {
            get { return users; }
        }

        public DatabaseListVM Databases
        {
            get { return databases; }
        }

        public FriendshipListVM Friendships
        {
            get { return friendships; }
        }

        public FriendRequestListVM FriendRequests
        {
            get { return friendRequests; }
        }

        public SharedDatabaseListVM SharedDatabases
        {
            get { return sharedDatabases; }
        } 

        public MainVM(Facade facade)
        {
            this.facade = facade;
            this.users = new UserListVM(facade);
            this.databases = new DatabaseListVM(facade);
            this.friendRequests = new FriendRequestListVM(facade);
            this.friendships = new FriendshipListVM(facade);
            this.sharedDatabases = new SharedDatabaseListVM(facade);
        }
    }
}
